package org.dromara.hm.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.mybatis.core.domain.BaseEntity;

/**
 * 客户转移记录表对象 hm_customer_transfer_history
 *
 * @author ruoyi
 * @date 2025-05-23
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("hm_customer_transfer_history")
public class HmCustomerTransferHistory extends BaseEntity
{

    private static final long serialVersionUID = 1L;

    /**
     * 客户转移记录ID
     */
    @TableId(value = "customer_transfer_history_id", type = IdType.AUTO)
    private Long customerTransferHistoryId;

    /**
     * 客户ID
     */
    @TableField(value = "customer_id")
    private Long customerId;

    /**
     * 客户姓名 (冗余)
     */
    @TableField(value = "customer_name")
    private String customerName;

    /**
     * 原服务员工ID
     */
    @TableField(value = "old_staff_id")
    private Long oldStaffId;

    /**
     * 原服务员工姓名
     */
    @TableField(value = "old_staff_name")
    private String oldStaffName;

    /**
     * 新服务员工ID
     */
    @TableField(value = "new_staff_id")
    private Long newStaffId;

    /**
     * 新服务员工姓名
     */
    @TableField(value = "new_staff_name")
    private String newStaffName;

    /**
     * 原归属店铺ID
     */
    @TableField(value = "old_store_id")
    private Long oldStoreId;

    /**
     * 原归属店铺名称
     */
    @TableField(value = "old_store_name")
    private String oldStoreName;

    /**
     * 新归属店铺ID
     */
    @TableField(value = "new_store_id")
    private Long newStoreId;

    /**
     * 新归属店铺名称
     */
    @TableField(value = "new_store_name")
    private String newStoreName;

    /**
     * 转移类型 (例如: STAFF_TRANSFER, STORE_TRANSFER, ALL_TRANSFER)
     */
    @TableField(value = "transfer_type")
    private String transferType;

    /**
     * 转移原因
     */
    @TableField(value = "transfer_reason")
    private String transferReason;

    /**
     * 操作人ID (sys_user.user_id)
     */
    @TableField(value = "operator_id")
    private Long operatorId;

    /**
     * 操作人姓名
     */
    @TableField(value = "operator_name")
    private String operatorName;

    /**
     * 删除标志（0代表存在 2代表删除）
     */
    @TableLogic
    private String delFlag;

    /**
     * 状态
     */
    private String status;

}
